Firmware may be described as software that is embedded within a hardware device. Typically, firmware that includes a basic input/output system (BIOS) for a particular computer hardware configuration is stored or “flashed” onto a read-only memory (ROM) device or other non-volatile memory. Many computer systems utilize a BIOS when powering on in order to prepare the computer system to recognize and control various devices within the computer system. Because firmware is made up of any number of drivers, or modules, that support the specific hardware contained within the target computer system in which the firmware will be installed, it must be created by a BIOS engineer according to the specific configuration of the target computer system.
When creating firmware for a target computer system, a BIOS engineer will create a firmware image, containing all of the desired firmware modules corresponding to the target computer system. This firmware image is then flashed onto a ROM device and installed within the target computer system for testing. When errors are found during testing, a new firmware image containing any updated firmware modules must be created and re-flashed onto the ROM device. The ROM device is again placed in the target computer system and testing can resume. Each time the firmware needs to be updated, a new firmware image must be created and re-flashed onto the ROM device. This process is time consuming and expensive.
There are hardware-based devices available that simulate a ROM device. An example of such a device is an in-circuit emulator (ICE). An ICE is typically an adapter card that must be physically connected to the motherboard of the target computer system. While an ICE allows firmware to be debugged without re-flashing each time an update to the firmware image is required, an ICE is an expensive solution that requires a reconfiguration of the target computer system through the addition of an adapter card during firmware debugging.
It is with respect to these considerations and others that the disclosure made herein is provided.